<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>

    <script>

        // 回调是异步的第一种解决方案   --- 不是特别合理

        // 地狱回调  (回调函数里面嵌套回调)

        // promise是异步的第二种解决方案   --- 更合理更强大

        //    是一个容器，一般存放异步的代码   (一种承诺，将来才会兑现)

        //    promise的状态   state
        //         pending ->  fulfilled(成功的)      pending ->  rejected(失败的)

        //         result


        //    特征
        //        他的结果一旦确定就不会再改变
        //        如果结果是失败的，内部会直接报错    then函数的第二个参数  或者是catch


        //    方法

        //      then(fn1 , fn2)


        //      必须使用链式操作  then(fn1).catch(fn2)


        //     解决地狱回调
        //        all([])   但是此方法只适合与全部成功
        //        链式操作  


        // p1.then(res => {
        //     。。。
        //     return p2 ;
        // }).then


        // 微任务和宏任务

        //    微任务    then    紧急任务
        //    宏任务  







        try { } catch (err) { }


    </script>

</body>

</html>